package com.nanyang.tms.api.service.cost;

import com.nanyang.common.core.domain.ApiResult;
import com.nanyang.common.core.page.PageBean;
import com.nanyang.tms.api.dto.request.cost.CostQueryRequest;
import com.nanyang.tms.api.dto.request.cost.CostUpdateStateRequest;
import com.nanyang.tms.api.dto.request.cost.add.CostBaseAddRequest;
import com.nanyang.tms.api.dto.request.cost.update.CostBaseUpdateRequest;
import com.nanyang.tms.api.dto.response.cost.CostBaseResponse;
import com.nanyang.tms.api.dto.response.cost.CostPageResponse;

public interface CostRpcService {
    /**
     * 列表
     * @param param
     * @return
     */
    ApiResult<PageBean<CostPageResponse>> listCost(CostQueryRequest param);
    /**
     *
     * <p>disableState</p>
     * <p>Description:(禁用)</p>
     *
     * @param param
     * @return
     */
    ApiResult<Boolean> disableState(CostUpdateStateRequest param);
    /**
     *
     * <p>enableState</p>
     * <p>Description:(启用)</p>
     *
     * @param param
     * @return
     */
    ApiResult<Boolean> enableState(CostUpdateStateRequest param);

    /**
     *
     * <p>saveCost</p>
     * <p>Description:(保存)</p>
     *
     * @param param
     * @return
     */
    ApiResult<Boolean> saveCost(CostBaseAddRequest param);

    /**
     *
     * <p>updateCost</p>
     * <p>Description:(修改)</p>
     *
     * @param param
     * @return
     */
    ApiResult<Boolean> updateCost(CostBaseUpdateRequest param);
    /**
     *
     * <p>getProductById</p>
     * <p>Description:(根据code获取成本详情)</p>
     *
     * @param code
     * @return
     */
    ApiResult<CostBaseResponse> selectByCode(String code);
}
